package com.hui.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hui.entity.dto.StatusDto;
import com.hui.util.module.customizeserializer.BigDecimalSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单表查询参数
 */
@Data
public class StoreOrderQueryVo {
    @ApiModelProperty("订单ID")
    private Long id;
    @ApiModelProperty("订单号")
    private String orderId;
    private String extendOrderId;
    @ApiModelProperty("用户id")
    private Long uid;
    @ApiModelProperty("用户姓名")
    private String realName;
    @ApiModelProperty("用户电话")
    private String userPhone;
    @ApiModelProperty("详细地址")
    private String userAddress;
    @ApiModelProperty("购物车id")
    private String cartId;
    @ApiModelProperty("订单购买的具体物品的信息")
    private List<StoreCartQueryVo> cartInfo; //订单购买的具体物品的信息 ，通过购物车去查询
    private StatusDto statusDto;
    @ApiModelProperty("运费金额")
    private BigDecimal freightPrice;
    @ApiModelProperty("订单商品总数")
    private Long totalNum;
    @ApiModelProperty("订单总价")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal totalPrice;
    @ApiModelProperty("邮费")
    private BigDecimal totalPostage;
    @ApiModelProperty("实际支付金额")
    private BigDecimal payPrice;
    @ApiModelProperty("实际支付积分")
    private BigDecimal payIntegral;
    @ApiModelProperty("支付邮费")
    private BigDecimal payPostage;
    @ApiModelProperty("抵扣金额")
    private BigDecimal deductionPrice;
    @ApiModelProperty("优惠券id")
    private Long couponId;
    @ApiModelProperty("优惠券金额")
    private BigDecimal couponPrice;
    @ApiModelProperty("支付状态")
    private Integer paid;
    @ApiModelProperty("支付时间")
    private Date payTime;
    @ApiModelProperty("支付方式")
    private String payType;
    @ApiModelProperty("创建时间")
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss",
            timezone = "GMT+8"
    )
    private Date createTime;
    @ApiModelProperty("订单状态（-1 : 申请退款 -2 : 退货成功 0：待发货；1：待收货；2：已收货；3：待评价；-1：已退款）")
    private Integer status;
    @ApiModelProperty("0 未退款 1 申请中 2 已退款")
    private Integer refundStatus;
    @ApiModelProperty("退款图片")
    private String refundReasonWapImg;
    @ApiModelProperty("退款用户说明")
    private String refundReasonWapExplain;
    @ApiModelProperty("退款时间")
    private Date refundReasonTime;
    @ApiModelProperty("前台退款原因")
    private String refundReasonWap;
    @ApiModelProperty("不退款的理由")
    private String refundReason;
    @ApiModelProperty("退款金额")
    private BigDecimal refundPrice;
    @ApiModelProperty("快递名称/送货人姓名")
    private String deliveryName;
    private String deliverySn;
    @ApiModelProperty("发货类型")
    private String deliveryType;
    @ApiModelProperty("快递单号/手机号")
    private String deliveryId;
    @ApiModelProperty("消费赚取积分")
    private BigDecimal gainIntegral;
    @ApiModelProperty("使用积分")
    private BigDecimal useIntegral;
    @ApiModelProperty("给用户退了多少积分")
    private BigDecimal backIntegral;
    @ApiModelProperty("备注")
    private String mark;
    @ApiModelProperty("唯一id(md5加密)类似id")
    private String unique;
    @ApiModelProperty("管理员备注")
    private String remark;
    @ApiModelProperty("商户ID")
    private Integer merId;
    private Integer isMerCheck;
    @ApiModelProperty("拼团产品id0一般产品")
    private Long combinationId;
    @ApiModelProperty("拼团id 0没有拼团")
    private Long pinkId;
    @ApiModelProperty("成本价")
    private BigDecimal cost;
    @ApiModelProperty("秒杀产品ID")
    private Long seckillId;
    @ApiModelProperty("砍价id")
    private Long bargainId;
    @ApiModelProperty("核销码")
    private String verifyCode;
    @ApiModelProperty("门店id")
    private Integer storeId;
    @ApiModelProperty("配送方式 1=快递 ，2=门店自提")
    private Integer shippingType;
    @ApiModelProperty("支付渠道(0微信公众号1微信小程序)")
    private Integer isChannel;
    private Integer isRemind;
    private Integer isSystemDel;
    @ApiModelProperty("门店信息与二维码链接")
    private String code;
    @ApiModelProperty("腾讯地图key")
    private String mapKey;
    @ApiModelProperty("门店信息")
    private SystemStoreQueryVo systemStore;

}
